JSON 포맷 압축 및 복원방법
특허 기본 정보
서지사항
- 특허명: JSON 포맷 압축 및 복원방법 (JSON format encoding and decoding methods)
- 공개번호: KR10-2023-0015776 (A)
- 공개일자: 2023년 01월 31일
- 출원번호: 10-2021-0097351
- 출원일자: 2021년 07월 23일
- 등록공고일: 2023년 11월 06일
- 출원인: 주식회사 중앙디앤엠
- 발명자: 김명환, 김진모
- 대리인: 피앤피특허법인
국제특허분류 (IPC)
- H03M 7/30 (2006.01): 압축 코딩 방법
- H03M 7/707 (2019.01): 사전 기반 압축 방법
- H03M 7/3084 (2013.01): 적응형 압축 방법
정부연구개발사업 지원
- 과제명: 소비자 체감형 요금제 연동형 OCF 기반 서브미터링 기술 및 서비스 개발
- 부처: 산업통상자원부
- 기관: 한국에너지기술평가원
- 연구기간: 2019.05.01 ~ 2022.04.30
기술적 배경 및 해결과제
기존 기술의 한계
기존 JSON 포맷은 바이너리 형태로 압축하여 사용함으로써 구문해석이 불가능한 문제점이 있었습니다. 또한 순수한 XML이나 JSON 패킷 구조에서 구현하기 힘든 압축, 분할전송, 보안 적용 등의 이점을 살리면서도 데이터 자체는 XML과 JSON 형태 그대로 유지할 수 있는 방법이 필요했습니다.
해결하려는 기술적 과제
- 구문해석 가능성 유지: 압축되더라도 구문해석이 가능한 JSON 포맷 제공
- 압축률 향상: 효율적인 압축률을 달성하면서 텍스트 형태 유지
- 대용량 데이터 전송: 데이터베이스에서 대량의 데이터를 효과적으로 전송
핵심 기술 구성
시스템 아키텍처
특허에 따르면 JSON 포맷 압축복원모듈(100)은 다음 4개 핵심 구성요소로 이루어집니다:
- 포맷추출부(110): JSON 포맷 데이터 검출 및 추출
- 포맷서치부(130): 중복값 검사 및 대응코드 생성
- 포맷압축부(150): SUB-JSON 생성 및 압축 수행
- 포맷복원부(170): 압축된 데이터의 원본 복원
압축 알고리즘 상세
1단계: 중복값 검사 및 분석
포맷서치부에서 키 또는 밸류의 문자길이가 설정값 이상인 것만 검사하는 것이 바람직하다. 예를 들어, 키 또는 밸류의 문자길이가 4 이상이면 중복값 검사를 시행하고, 4 미만이면 스킵합니다.
2단계: 대응코드 생성 체계
- 기본 형식:
c1
,c2
등 영문자 1자 + 숫자 조합 - 구분 체계: 키는
k1
, 밸류는v1
으로 구분 - 키세트 대응코드:
s1
과 같이 특별한 문자로 시작 - 충돌 방지: 기존 키/밸류와 동일한 대응코드 발견 시 문자코드를 1 증가
3단계: SUB-JSON 포맷 구조
SUB-JSON 포맷에는 중복값이 2 이상인 키 또는 밸류가 키로 저장되고, 해당 키 또는 밸류에 대응하는 대응코드가 밸류로 저장됩니다.
{
"code": {
"name_test_value3": "c5",
"name_test_value2": "c7",
"name_test_value4": "c9",
"name_test_c": "c0",
"value_test_a.r[].value3": "c6",
"name_test_d": "c1",
"value_test_a.r[].value4": "c10",
"value_test_a.r[].value5": "c3",
"value_test_a.b": "c2",
"name_test_e": "c11",
"value_test_a.e": "c12",
"value_test_a.f": "c13",
"value_test_a.g": "c14",
"value_test_a.r[].value1": "c4",
"value_test_a.r[].value2": "c8"
}
}
4단계: 키세트 최적화
반복되는 동일순서의 키세트가 있는 경우 키세트에 대응하는 대응코드를 생성하고, 밸류는 배열형태로 변환합니다.
압축 전:
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
}
압축 후:
{
"s1": ["Molecule Man", 29, "Dan Jukes", ["Radiation resistance", "Turning tiny", "Radiation blast"]]
}
복원 알고리즘
압축여부 판단
JSON 포맷에 SUB-JSON 포맷이 있는지 없는지 여부로 압축여부를 결정합니다.
복원 프로세스
- SUB-JSON 검사: 압축된 JSON에서 SUB-JSON 포맷 존재 확인
- 대응코드 독출: SUB-JSON에서 대응코드와 원본 키/밸류 매핑 정보 추출
- 데이터 변환: 메인 JSON에서 대응코드를 원본 키/밸류로 치환
- SUB-JSON 삭제: 복원 완료 후 SUB-JSON 포맷 제거
기술적 차별점 및 혁신성
1. 가독성 유지
기존 바이너리 압축과 달리 텍스트 형태를 유지하면서 압축을 달성하여 디버깅과 개발 과정에서의 가독성을 보장합니다.
2. 적응형 대응코드 시스템
문자코드 충돌 방지를 통한 안전한 압축 및 복원이 가능하며, 키세트 최적화를 통해 구조적 반복 패턴도 효율적으로 압축합니다.
3. 구문해석 호환성
압축된 상태에서도 표준 JSON 파서로 구문해석이 가능하여 기존 시스템과의 호환성을 유지합니다.
응용 분야 및 효과
주요 응용 분야
- IoT 데이터 전송: 에너지 미터링 데이터의 효율적 전송
- 웹 API 최적화: 대용량 JSON 응답 데이터 압축
- 데이터베이스 인터페이스: DB-클라이언트 간 대량 데이터 교환
- 실시간 데이터 스트리밍: 압축률과 처리 속도의 균형점 제공
기술적 효과
- 전송 대역폭 절약: 반복 데이터 제거를 통한 효율적 네트워크 사용
- 처리 속도 향상: 바이너리 압축/해제 오버헤드 없이 빠른 처리
- 개발 생산성: 압축 상태에서도 가독성 유지로 디버깅 용이
- 시스템 호환성: 기존 JSON 처리 시스템과 완벽 호환
산업적 가치
시장 적용 가능성
- 에너지 관리 시스템: 스마트 미터링 데이터 최적화
- 클라우드 서비스: API 응답 데이터 전송 효율성 개선
- 모바일 애플리케이션: 제한된 네트워크 환경에서의 데이터 전송 최적화
- 빅데이터 플랫폼: 대용량 JSON 기반 데이터 처리 시스템
경쟁 우위
기존의 gzip, brotli 등 범용 압축 알고리즘과 달리, JSON 구조적 특성을 활용한 도메인 특화 압축 방법으로서 압축률과 가독성의 균형점을 제공하는 차별화된 기술입니다.
기술 성숙도 및 한계
기술 성숙도
- 특허 등록 완료로 기술적 완성도 확보
- 정부 R&D 과제를 통한 실증 검증 완료
- 에너지 관리 분야에서의 실제 적용 사례 보유
잠재적 한계
- 압축률 한계: 중복 데이터가 적은 경우 압축 효과 제한적
- 처리 오버헤드: 중복 검사 및 대응코드 생성 과정의 연산 비용
- 메타데이터 오버헤드: SUB-JSON 구조로 인한 추가 메타데이터
이 특허는 JSON 데이터의 구조적 특성을 활용한 혁신적인 압축 방법으로, 특히 IoT 및 웹 서비스 분야에서 높은 활용 가치를 가진 기술입니다.